Hệ thống xếp lịch học tín chỉ cho sinh viên CNTT trên PHP & MySQL
112.039 lượt xem;
1 <!-- Edit this file to change the layout of the detail view form -->
2
3 <a name="detail-view"></a>
4 <div class="panel-heading"><h3 class="panel-title"><strong><%%DETAIL_VIEW_TITLE%%></strong></h3></div>
5
6 <div class="panel-body" id="student_details_dv_container">
7 <!-- child links -->
8 <div class="row vspacer-md">
9 <div class="col-xs-12">
10 <div class="clearfix"></div>
11 </div>
12 </div>
13 <hr class="hidden-xs hidden-sm">
14
15 <div class="row">
16 <!-- form inputs -->
17 <div class="col-md-8 col-lg-10" id="student_details_dv_form">
18 <fieldset class="form-horizontal">
19
20 <div class="form-group">
21 <hr class="hidden-md hidden-lg">
22 <label for="id" class="control-label col-lg-3">ID</label>
23 <div class="col-lg-9">
24 <div class="form-control-static" id="id"><%%VALUE(id)%%></div>
25 </div>
26 </div>
27
28 <div class="form-group">
29 <hr class="hidden-md hidden-lg">
30 <label for="full_name" class="control-label col-lg-3">Tên<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
31 <div class="col-lg-9">
32 <input maxlength="40" type="text" class="form-control" name="full_name" id="full_name" value="<%%VALUE(full_name)%%>" required>
33 </div>
34 </div>
35
36 <div class="form-group">
37 <hr class="hidden-md hidden-lg">
38 <label for="school" class="control-label col-lg-3" data-parent_link="view_parent_modal">Lớp học<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
39 <div class="col-lg-9">
40 <div class="form-control-static" style="white-space: nowrap; overflow-x: hidden;"><%%COMBO(school)%%><%%PLINK(school)%%><%%ADDNEW(schools)%%></div>
41 </div>
42 </div>
43
44 <div class="form-group">
45 <hr class="hidden-md hidden-lg">
46 <label for="department" class="control-label col-lg-3" data-parent_link="view_parent_modal">Môn học<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
47 <div class="col-lg-9">
48 <div class="form-control-static" style="white-space: nowrap; overflow-x: hidden;"><%%COMBO(department)%%><%%PLINK(department)%%><%%ADDNEW(departments)%%></div>
49 </div>
50 </div>
51
52 <div class="form-group">
53 <hr class="hidden-md hidden-lg">
54 <label for="year_of_study" class="control-label col-lg-3">Học kì<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
55 <div class="col-lg-9">
56 <%%COMBO(year_of_study)%%>
57 </div>
58 </div>
59
60 <div class="form-group">
61 <hr class="hidden-md hidden-lg">
62 <label for="reg_no" class="control-label col-lg-3">Reg no<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
63 <div class="col-lg-9">
64 <input maxlength="40" type="text" class="form-control" name="reg_no" id="reg_no" value="<%%VALUE(reg_no)%%>" required><div class="text-danger vspacer-md" id="reg_no-uniqueness-note" style="display: none;"><%%TRANSLATION(unique field error)%%></div>
65 </div>
66 </div>
67
68 </fieldset>
69 </div>
70
71 <!-- DV action buttons -->
72 <hr class="hidden-md hidden-lg">
73 <div class="col-md-4 col-lg-2" id="student_details_dv_action_buttons">
74 <div class="btn-toolbar">
75 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
76 <%%UPDATE_BUTTON%%>
77 </div><p></p>
78 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
79 <%%DESELECT_BUTTON%%>
80 <%%DVPRINT_BUTTON%%>
81 <%%DELETE_BUTTON%%>
82 </div><p></p>
83 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
84 <%%INSERT_BUTTON%%>
85 </div>
86 </div>
87 </div>
88 </div>
89
90
91 </div><!-- /div class="panel-body" -->
92 <script>
93 $j(function() {
94 var add_new_mode = (!$j('input[name=SelectedID]').val());
95 var embedded_mode = ($j('input[name=Embedded]').val() == 1);
96
97 /* auto-close embedded page? */
98 var autoclose_mode = ($j('input[name=AutoClose]').val() == 1);
99 var record_added_ok = (location.search.split('record-added-ok=').length == 2);
100 var record_updated_ok = (location.search.split('record-updated-ok=').length == 2);
101 if((record_added_ok || record_updated_ok) && embedded_mode && autoclose_mode){
102 setTimeout(AppGini.closeParentModal, 2000);
103 }
104
105 /* enable DV action buttons to float on scrolling down the form */
106 enable_dvab_floating();
107
108 if(!(embedded_mode && AppGini.mobileDevice())){
109 $j('select, input[type=text], textarea').not(':disabled').eq(0).focus();
110 }
111
112 $j('form').eq(0).change(function(){
113 if($j(this).data('already_changed')) return;
114 if($j('#deselect').length) $j('#deselect').removeClass('btn-default').addClass('btn-warning').get(0).lastChild.data = " <%%TRANSLATION(Cancel)%%>";
115 $j(this).data('already_changed', true);
116 });
117
118 $j('a[href="<%%TRANSLATION(ImageFolder)%%>"]').click(function(){ /* */ return false; });
119
120
121 if(!embedded_mode){
122 /* add a horizontal spacer to [add new parent] buttons that don't have a spacered element before them */
123 $j('.add_new_parent').prev(':not(.hspacer-md)').next().addClass('hspacer-md');
124
125 $j('.add_new_parent').click(function(){
126 var pt = $j(this).attr('id').replace(/_add_new$/, '');
127 modal_window({
128 url: pt + '_view.php?addNew_x=1&Embedded=1',
129 close: function(){
130 var field_id = $j('#' + pt + '_add_new').prevAll('input:hidden').eq(0).attr('id');
131 $j('#' + field_id + '-container').select2('focus').select2('focus');
132 },
133 size: 'full',
134 title: $j(this).attr('title')
135 });
136 });
137 }
138
139 AppGini.hideViewParentLinks();
140
141 $j('form').on('click', '.view_parent', function(){
142 var pt = $j(this).attr('id').replace(/_view_parent$/, '');
143 if($j(this).prevAll('input:hidden').length){
144 var parent_id = $j(this).prevAll('input:hidden').eq(0).val();
145 }else{
146 var parent_id = $j(this).prevAll().children('input:hidden').eq(0).val();
147 }
148
149 /* handle radio lookups */
150 if($j(this).prevAll('[type=radio]').length){
151 parent_id = $j(this).prevAll('[type=radio]').eq(0).val();
152 }
153
154 if(parent_id != '{empty_value}' && parent_id != undefined && parent_id != ''){
155 var parent_link = $j(this).parents('.form-group').children('label').data('parent_link');
156 switch(parent_link){
157 case 'view_parent_hidden':
158 break;
159 case 'view_parent_modal':
160 modal_window({
161 url: pt + '_view.php?Embedded=1&SelectedID=' + encodeURIComponent(parent_id),
162 close: function(){
163 var field_id = $j('#' + pt + '_view_parent').prevAll('input:hidden').eq(0).attr('id');
164 $j('#' + field_id + '-container').select2('focus').select2('focus');
165 },
166 size: 'full',
167 title: $j(this).attr('title')
168 });
169 break;
170 case 'view_parent_same_window':
171 window.location = pt + '_view.php?Embedded=' + (embedded_mode ? '1' : '') + '&SelectedID=' + encodeURIComponent(parent_id);
172 break;
173 case 'view_parent_new_window':
174 window.open(pt + '_view.php?SelectedID=' + encodeURIComponent(parent_id));
175 break;
176 }
177
178 }
179 });
180
181 enforce_uniqueness('student_details', 'reg_no');
182
183 /* load admin tools for admin user */
184 if(!add_new_mode){
185 $j('body').append('<div id="admin-tools-appendix"></div>');
186 $j('#admin-tools-appendix').load(
187 'ajax_admin_tools.php?table=student_details&id=<%%URLVALUE(id)%%>',
188 function(resp){
189 if(!resp.length) return;
190 $j.ajax('ajax_admin_tools.php?action=get_admin_tools_js&table=student_details&id=<%%URLVALUE(id)%%>');
191 }
192 );
193 }
194
195 /* warn user if 'add new' clicked while unsaved changes exist */
196 $j('#addNew').click(function(){
197 if($j('#deselect.btn-warning').length){
198 return confirm('<%%TRANSLATION(discard changes confirm)%%>');
199 }
200 });
201
202 });
203 </script>
2
3 <a name="detail-view"></a>
4 <div class="panel-heading"><h3 class="panel-title"><strong><%%DETAIL_VIEW_TITLE%%></strong></h3></div>
5
6 <div class="panel-body" id="student_details_dv_container">
7 <!-- child links -->
8 <div class="row vspacer-md">
9 <div class="col-xs-12">
10 <div class="clearfix"></div>
11 </div>
12 </div>
13 <hr class="hidden-xs hidden-sm">
14
15 <div class="row">
16 <!-- form inputs -->
17 <div class="col-md-8 col-lg-10" id="student_details_dv_form">
18 <fieldset class="form-horizontal">
19
20 <div class="form-group">
21 <hr class="hidden-md hidden-lg">
22 <label for="id" class="control-label col-lg-3">ID</label>
23 <div class="col-lg-9">
24 <div class="form-control-static" id="id"><%%VALUE(id)%%></div>
25 </div>
26 </div>
27
28 <div class="form-group">
29 <hr class="hidden-md hidden-lg">
30 <label for="full_name" class="control-label col-lg-3">Tên<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
31 <div class="col-lg-9">
32 <input maxlength="40" type="text" class="form-control" name="full_name" id="full_name" value="<%%VALUE(full_name)%%>" required>
33 </div>
34 </div>
35
36 <div class="form-group">
37 <hr class="hidden-md hidden-lg">
38 <label for="school" class="control-label col-lg-3" data-parent_link="view_parent_modal">Lớp học<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
39 <div class="col-lg-9">
40 <div class="form-control-static" style="white-space: nowrap; overflow-x: hidden;"><%%COMBO(school)%%><%%PLINK(school)%%><%%ADDNEW(schools)%%></div>
41 </div>
42 </div>
43
44 <div class="form-group">
45 <hr class="hidden-md hidden-lg">
46 <label for="department" class="control-label col-lg-3" data-parent_link="view_parent_modal">Môn học<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
47 <div class="col-lg-9">
48 <div class="form-control-static" style="white-space: nowrap; overflow-x: hidden;"><%%COMBO(department)%%><%%PLINK(department)%%><%%ADDNEW(departments)%%></div>
49 </div>
50 </div>
51
52 <div class="form-group">
53 <hr class="hidden-md hidden-lg">
54 <label for="year_of_study" class="control-label col-lg-3">Học kì<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
55 <div class="col-lg-9">
56 <%%COMBO(year_of_study)%%>
57 </div>
58 </div>
59
60 <div class="form-group">
61 <hr class="hidden-md hidden-lg">
62 <label for="reg_no" class="control-label col-lg-3">Reg no<span class="text-danger"><%%TRANSLATION(*)%%></span></label>
63 <div class="col-lg-9">
64 <input maxlength="40" type="text" class="form-control" name="reg_no" id="reg_no" value="<%%VALUE(reg_no)%%>" required><div class="text-danger vspacer-md" id="reg_no-uniqueness-note" style="display: none;"><%%TRANSLATION(unique field error)%%></div>
65 </div>
66 </div>
67
68 </fieldset>
69 </div>
70
71 <!-- DV action buttons -->
72 <hr class="hidden-md hidden-lg">
73 <div class="col-md-4 col-lg-2" id="student_details_dv_action_buttons">
74 <div class="btn-toolbar">
75 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
76 <%%UPDATE_BUTTON%%>
77 </div><p></p>
78 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
79 <%%DESELECT_BUTTON%%>
80 <%%DVPRINT_BUTTON%%>
81 <%%DELETE_BUTTON%%>
82 </div><p></p>
83 <div class="btn-group-vertical btn-group-lg" style="width: 100%;">
84 <%%INSERT_BUTTON%%>
85 </div>
86 </div>
87 </div>
88 </div>
89
90
91 </div><!-- /div class="panel-body" -->
92 <script>
93 $j(function() {
94 var add_new_mode = (!$j('input[name=SelectedID]').val());
95 var embedded_mode = ($j('input[name=Embedded]').val() == 1);
96
97 /* auto-close embedded page? */
98 var autoclose_mode = ($j('input[name=AutoClose]').val() == 1);
99 var record_added_ok = (location.search.split('record-added-ok=').length == 2);
100 var record_updated_ok = (location.search.split('record-updated-ok=').length == 2);
101 if((record_added_ok || record_updated_ok) && embedded_mode && autoclose_mode){
102 setTimeout(AppGini.closeParentModal, 2000);
103 }
104
105 /* enable DV action buttons to float on scrolling down the form */
106 enable_dvab_floating();
107
108 if(!(embedded_mode && AppGini.mobileDevice())){
109 $j('select, input[type=text], textarea').not(':disabled').eq(0).focus();
110 }
111
112 $j('form').eq(0).change(function(){
113 if($j(this).data('already_changed')) return;
114 if($j('#deselect').length) $j('#deselect').removeClass('btn-default').addClass('btn-warning').get(0).lastChild.data = " <%%TRANSLATION(Cancel)%%>";
115 $j(this).data('already_changed', true);
116 });
117
118 $j('a[href="<%%TRANSLATION(ImageFolder)%%>"]').click(function(){ /* */ return false; });
119
120
121 if(!embedded_mode){
122 /* add a horizontal spacer to [add new parent] buttons that don't have a spacered element before them */
123 $j('.add_new_parent').prev(':not(.hspacer-md)').next().addClass('hspacer-md');
124
125 $j('.add_new_parent').click(function(){
126 var pt = $j(this).attr('id').replace(/_add_new$/, '');
127 modal_window({
128 url: pt + '_view.php?addNew_x=1&Embedded=1',
129 close: function(){
130 var field_id = $j('#' + pt + '_add_new').prevAll('input:hidden').eq(0).attr('id');
131 $j('#' + field_id + '-container').select2('focus').select2('focus');
132 },
133 size: 'full',
134 title: $j(this).attr('title')
135 });
136 });
137 }
138
139 AppGini.hideViewParentLinks();
140
141 $j('form').on('click', '.view_parent', function(){
142 var pt = $j(this).attr('id').replace(/_view_parent$/, '');
143 if($j(this).prevAll('input:hidden').length){
144 var parent_id = $j(this).prevAll('input:hidden').eq(0).val();
145 }else{
146 var parent_id = $j(this).prevAll().children('input:hidden').eq(0).val();
147 }
148
149 /* handle radio lookups */
150 if($j(this).prevAll('[type=radio]').length){
151 parent_id = $j(this).prevAll('[type=radio]').eq(0).val();
152 }
153
154 if(parent_id != '{empty_value}' && parent_id != undefined && parent_id != ''){
155 var parent_link = $j(this).parents('.form-group').children('label').data('parent_link');
156 switch(parent_link){
157 case 'view_parent_hidden':
158 break;
159 case 'view_parent_modal':
160 modal_window({
161 url: pt + '_view.php?Embedded=1&SelectedID=' + encodeURIComponent(parent_id),
162 close: function(){
163 var field_id = $j('#' + pt + '_view_parent').prevAll('input:hidden').eq(0).attr('id');
164 $j('#' + field_id + '-container').select2('focus').select2('focus');
165 },
166 size: 'full',
167 title: $j(this).attr('title')
168 });
169 break;
170 case 'view_parent_same_window':
171 window.location = pt + '_view.php?Embedded=' + (embedded_mode ? '1' : '') + '&SelectedID=' + encodeURIComponent(parent_id);
172 break;
173 case 'view_parent_new_window':
174 window.open(pt + '_view.php?SelectedID=' + encodeURIComponent(parent_id));
175 break;
176 }
177
178 }
179 });
180
181 enforce_uniqueness('student_details', 'reg_no');
182
183 /* load admin tools for admin user */
184 if(!add_new_mode){
185 $j('body').append('<div id="admin-tools-appendix"></div>');
186 $j('#admin-tools-appendix').load(
187 'ajax_admin_tools.php?table=student_details&id=<%%URLVALUE(id)%%>',
188 function(resp){
189 if(!resp.length) return;
190 $j.ajax('ajax_admin_tools.php?action=get_admin_tools_js&table=student_details&id=<%%URLVALUE(id)%%>');
191 }
192 );
193 }
194
195 /* warn user if 'add new' clicked while unsaved changes exist */
196 $j('#addNew').click(function(){
197 if($j('#deselect.btn-warning').length){
198 return confirm('<%%TRANSLATION(discard changes confirm)%%>');
199 }
200 });
201
202 });
203 </script>